﻿namespace WADConfigureWebRole
{
	/// <summary>
	/// This class defines a performance counter item.  It has both the
	/// WAD required properties and the InstanceController properties.
	/// </summary>
	public class PerformanceCounterItem
	{
		#region properties used for gathering diagnostics by Azure
		/// <summary>
		/// Gets or sets the name of the performance counter.
		/// </summary>
		/// <value>The name of the counter.</value>
		public string CounterName { get; set; }
		/// <summary>
		/// Gets or sets the data sampling rate.
		/// </summary>
		/// <value>The sample rate.</value>
		public double SampleRate { get; set; }
		#endregion

		#region properties used by InstanceMonitor to regulate instances

		/// <summary>
		/// Gets or sets the friendly name of the performance counter that is used as the rowKey to store the record.
		/// </summary>
		/// <value>The friendly name of the performance counter.</value>
		public string FriendlyName { get; set; }

		/// <summary>
		/// Polling Interval Property. Controls counter data collection and evaluation.
		/// Set to -1 disable a counter. Set to 0 to ignore it from auto instance control.
		/// </summary>
		/// <value>The polling interval.</value>
		/// <remarks>This value when set to 0 allows the data to be collected by diagnostics
		/// but NOT included in the auto instancing control program.
		/// </remarks>
		public int PollingInterval { get; set; }

		/// <summary>
		/// Gets or sets the increment threshold.
		/// </summary>
		/// <value>The threshold.</value>
		public int IncThreshold { get; set; }

		/// <summary>
		/// Gets or sets the decement threshold.
		/// </summary>
		/// <value>The dec threshold.</value>
		public int DecThreshold { get; set; }

		/// <summary>
		/// Gets or sets the padding seconds. This is the minimum number of seconds
		/// that the thresholds (low or high) must be exceeded before an action will
		/// be started.
		/// </summary>
		/// <value>The padding seconds.</value>
		public int PaddingSeconds { get; set; }

		/// <summary>
		/// Gets or sets the priority level.
		/// </summary>
		/// <value>The priority level.</value>
		public int PriorityLevel { get; set; }

		#endregion

	}
}

namespace WADConfigureWebRole
{
}